package com.yonyou.cyxdms.sysAuth.service.dto;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLongLocalDateTimeDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonLongLocalDateTimeSerializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonSimpleLocalDateDeserializer;
import com.yonyou.cyx.function.utils.jsonserializer.localdatetime.JsonSimpleLocalDateSerializer;
import com.yonyou.cyxdms.framework.bean.dto.base.DMSBaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * @author ：quankk
 * @date ：Created in 2019/5/22 15:09
 * @description：CYX个人信息
 */
@ApiModel(value="CYX个人信息DTO",description="CYX个人信息对象")
public class CYXEmployeeDTO extends DMSBaseDTO implements Serializable {

    @ApiModelProperty(value = "主键ID")
    private Long employeeId;

    @ApiModelProperty(value = "经销商代码")
    private String dealerCode;

    @ApiModelProperty(value = "经销商ID")
    private Long dealerId;

    @ApiModelProperty(value = "员工姓名")
    private String employeeName;

    @ApiModelProperty(value = "账号")
    private String userCode;

    @ApiModelProperty(value = "用户ID")
    private Integer userId;

    @ApiModelProperty(value = "appId")
    private String appId;

    @ApiModelProperty(value = "状态")
    private Integer userStatus;

    @ApiModelProperty(value = "员工编号")
    private String employeeNo;

    @ApiModelProperty(value = "E_Mail")
    private String eMail;

    @ApiModelProperty(value = "邮编")
    private String zipCode;

    @ApiModelProperty(value = "身份证")
    private String certificateId;

    @ApiModelProperty(value = "电话")
    private String mobile;

    @ApiModelProperty(value = "手机")
    private String phone;

    @ApiModelProperty(value = "地址")
    private String address;

    @ApiModelProperty(value = "头像url")
    private String headImgUrl;

    @ApiModelProperty(value = "wechat")
    private String wechat;

    @ApiModelProperty(value = "建档日期")
    @JsonSerialize(using = JsonSimpleLocalDateSerializer.class)
    @JsonDeserialize(using = JsonSimpleLocalDateDeserializer.class)
    private LocalDate foundDate;

    @ApiModelProperty(value = "在职状态")
    private Integer isOnjob;

    @ApiModelProperty(value = "出生日期")
    @JsonSerialize(using = JsonSimpleLocalDateSerializer.class)
    @JsonDeserialize(using = JsonSimpleLocalDateDeserializer.class)
    private LocalDate birthday;

    @ApiModelProperty(value = "离职日期")
    @JsonSerialize(using = JsonSimpleLocalDateSerializer.class)
    @JsonDeserialize(using = JsonSimpleLocalDateDeserializer.class)
    private LocalDate dimissionDate;

    @JsonSerialize(using = JsonLongLocalDateTimeSerializer.class)
    @JsonDeserialize(using = JsonLongLocalDateTimeDeserializer.class)
    private LocalDateTime changedAt;

    @ApiModelProperty(value = "人员角色")
    private List<Map<String,Object>> roleItems;

    public Long getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(Long employeeId) {
        this.employeeId = employeeId;
    }

    public String getDealerCode() {
        return dealerCode;
    }

    public void setDealerCode(String dealerCode) {
        this.dealerCode = dealerCode;
    }

    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public String getUserCode() {
        return userCode;
    }

    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }

    public Integer getUserStatus() {
        return userStatus;
    }

    public void setUserStatus(Integer userStatus) {
        this.userStatus = userStatus;
    }

    public String getEmployeeNo() {
        return employeeNo;
    }

    public void setEmployeeNo(String employeeNo) {
        this.employeeNo = employeeNo;
    }

    public String geteMail() {
        return eMail;
    }

    public void seteMail(String eMail) {
        this.eMail = eMail;
    }

    public String getZipCode() {
        return zipCode;
    }

    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }

    public String getCertificateId() {
        return certificateId;
    }

    public void setCertificateId(String certificateId) {
        this.certificateId = certificateId;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getHeadImgUrl() {
        return headImgUrl;
    }

    public void setHeadImgUrl(String headImgUrl) {
        this.headImgUrl = headImgUrl;
    }

    public LocalDate getFoundDate() {
        return foundDate;
    }

    public void setFoundDate(LocalDate foundDate) {
        this.foundDate = foundDate;
    }

    public Integer getIsOnjob() {
        return isOnjob;
    }

    public void setIsOnjob(Integer isOnjob) {
        this.isOnjob = isOnjob;
    }

    public LocalDate getBirthday() {
        return birthday;
    }

    public void setBirthday(LocalDate birthday) {
        this.birthday = birthday;
    }

    public LocalDate getDimissionDate() {
        return dimissionDate;
    }

    public void setDimissionDate(LocalDate dimissionDate) {
        this.dimissionDate = dimissionDate;
    }

    public LocalDateTime getChangedAt() {
        return changedAt;
    }

    public void setChangedAt(LocalDateTime changedAt) {
        this.changedAt = changedAt;
    }

    public List<Map<String, Object>> getRoleItems() {
        return roleItems;
    }

    public void setRoleItems(List<Map<String, Object>> roleItems) {
        this.roleItems = roleItems;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getWechat() {
        return wechat;
    }

    public void setWechat(String wechat) {
        this.wechat = wechat;
    }

    public Long getDealerId() {
        return dealerId;
    }

    public void setDealerId(Long dealerId) {
        this.dealerId = dealerId;
    }
}
